<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>2_回调形式refs</title>
</head>
<body>
<div id="test"></div>

<script type="text/javascript" src="../js/react.development.js"></script>
<script type="text/javascript" src="../js/react-dom.development.js"></script>
<script type="text/javascript" src="../js/babel.min.js"></script>

<script type="text/babel">

    class Demo extends React.Component {
        /**
        1.通过onXxx属性指定事件处理函数(注意大小写)
            1)React使用的是自定义(合成)事件, 而不是使用的原生DOM事件--------为了兼容性
            2)React中的事件是通过事件委托方式处理的(委托给组件最外层的元素)---为了高效
        2.通过event.target得到发生事件的DOM元素对象---------------------不要过度使用ref
         *x*/
        //创建容器
        myRef = React.createRef()
        myRef2 = React.createRef()
        showData = () => {
            alert(this.myRef.current.value)
        }
        showData2 = (event) => {
            alert(event.target.value)
        }

        render() {
            return (
                <div>
                    <input ref={this.myRef} type="text" placeholder="点击按钮提示数据"/>&nbsp;
                    <button onClick={this.showData}>点击我提示左边数据</button>
                    <input  onBlur={this.showData2} type="text" placeholder="失去焦点提示数据"/>&nbsp;
                </div>
            )
        }
    }

    ReactDOM.render(<Demo/>, document.getElementById('test'))
</script>
</body>
</html>
